.Dd Aug 19, 2012
.Dt XPRINTF 3
.Os Darwin
.Sh NAME
.Nm asxprintf , dxprintf , fxprintf , sxprintf , xprintf ,
.Nm vasxprintf , vdxprintf , vfxprintf , vsxprintf , vxprintf
.Nd extensible printf
.Sh SYNOPSIS
.In printf.h
.Ft int
.Fn asxprintf "char ** restrict ret" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" ...
.Ft int
.Fn dxprintf "int fd" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" ...
.Ft int
.Fn fxprintf "FILE * restrict stream" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" ...
.Ft int
.Fn sxprintf "char * restrict str" "size_t size" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" ...
.Ft int
.Fn xprintf "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" ...
.In stdarg.h
.Ft int
.Fn vasxprintf "char ** restrict ret" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" "va_list ap"
.Ft int
.Fn vdxprintf "int fd" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" "va_list ap"
.Ft int
.Fn vfxprintf "FILE * restrict stream" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" "va_list ap"
.Ft int
.Fn vsxprintf "char * restrict str" "size_t size" "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" "va_list ap"
.Ft int
.Fn vxprintf "printf_domain_t restrict domain" "locale_t restrict loc" "const char * restrict format" "va_list ap"
.Sh DESCRIPTION
These extensible printf (see
.Xr xprintf 5 )
variants behave like their normal printf counterparts
(see
.Xr printf 3 )
without
.Sq Li x
in the name (except
.Fn sxprintf
and
.Fn vsxprintf
behave like
.Fn snprintf
and
.Fn vsnprintf ,
respectively).
.Pp
The
.Va domain
argument must be a pointer to a printf domain structure, as returned by one of
the functions described in
.Xr xprintf_domain 3 .
The
.Va loc
argument should be an extended locale (see
.Xr xlocale 3 )
or NULL, which means to use the current locale in effect (either the per-thread
locale if set, or the global locale by default).
.Sh SEE ALSO
.Xr printf 3 ,
.Xr xlocale 3 ,
.Xr xprintf_domain 3 ,
.Xr xprintf 5
